﻿"判断系统是否具有“自动命令”（autocmd）的支持
if has('autocmd')
  "清除所有的自动命令，以方便调试
  au!
  "对于后缀为“.asm”的文件，认为其是微软的 Macro Assembler 格式
  au BufNewFile,BufReadPre *.asm let b:asmsyntax='masm'
endif

" 载入文件类型插件
filetype plugin on 
" 为特定文件类型载入相关缩进文件
filetype indent on 

"当使用了图形界面时，确保所有的文件类型会在菜单“语法”（“Syntax”）下出现，而不是出现一个菜单项“Show filetypes in menu”。缺省行为可以让 Vim 启动得更快一点点。
if has('gui_running')
  let do_syntax_sel_menu=1  
	colorscheme railscasts
	"colorscheme twilight
endif

"语法样式开启
syntax on
"设置字体大小
set guifont=Monaco
"当使用了图形界面，并且环境变量 LANG 中不含“.”（即没有规定编码）时，把 Vim 的内部编码设为 UTF-8
"set encoding=utf-8
"设置缩进
set sw=2
set ts=2
" history文件中需要记录的行数
set history=100 
" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,- 
" 高亮显示普通txt文件（需要txt.vim脚本）
au BufRead,BufNewFile *  setfiletype txt 
"不需要保持和 vi 非常兼容
set nocompatible
"执行 Vim 缺省提供的 .vimrc 文件的示例，包含了打开语法加亮显示等最常用的功能
"source $VIMRUNTIME/vimrc_example.vim
" 使backspace正常处理indent, eol, start等
set backspace=2
" 允许backspace和光标键跨越行边界
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
set whichwrap+=<,>,h,l 
"在输入命令时列出匹配项目，也就是截图底部的效果
set wildmenu
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
"打开自动缩,继承前一行的缩进方式，特别适用于多行注释 进
set autoindent
"默认情况下手动折叠
set foldmethod=manual
"显示行号（否：nonumber）
set number
"不自动换行(否：wrap)
set nowrap
"缺省不产生备份文件
set nobackup
" 不要生成swap文件，当buffer被丢弃的时候隐藏它
setlocal noswapfile
" 总在Vim窗口右下角显示当前光标位置
set ruler
"set bufhidden=hide 
"在输入括号时光标会短暂地跳到与之相匹配的括号处，不影响输入
set showmatch
" 匹配括号高亮的时间（单位是十分之一秒）
set matchtime=1
" 在搜索时，输入的词句的逐字符高亮（类似firefox的搜索）
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
set incsearch
" 不要闪烁
set novisualbell 
"正确地处理中文字符的折行和拼接
set formatoptions+=mM
"文件 UTF-8 编码
set fileencodings=utf-8
"设置状态行，使其能额外显示文件的编码信息
"set statusline=%<%f\ %h%m%r%=%k[%{(&fenc==\"\")?&enc:&fenc}%{(&bomb?\",BOM\":\"\")}]\ %-14.(%l,%c%V%)\ %P
"如果该 Vim 支持鼠标，则启用鼠标支持
"if has('mouse')
"  set mouse=a
"endif
"开启命令显示
set showcmd
"设置窗口大小
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
set lines=35
set columns=140
" 启动的时候不显示那个援助索马里儿童的提示
set shortmess=atI 

"隐藏底部滚动条
set guioptions-=b
"隐藏右边滚动条
set guioptions-=R
set guioptions-=r
"隐藏左边滚动条
set guioptions-=l
set guioptions-=L
"隐藏菜单栏
set guioptions-=m
"隐藏工具栏
set guioptions-=T
"设置F2呼出菜单栏
map <silent> <C-F12> :if &guioptions =~# 'm' <Bar>
        \set guioptions-=m <bar>
    \else <Bar>
        \set guioptions+=m <Bar>
    \endif<CR>


"设置工作目录
function! CHANGE_CURR_DIR()
  let _dir = expand("%:p:h")
  exec "cd " . _dir
  unlet _dir
endfunction
autocmd BufEnter * call CHANGE_CURR_DIR()

"CTag 设置
"设置开启/关闭 快捷键
"nnoremap <silent> <F6> :TlistToggle<CR>
" NERDTree插件的快捷键
nnoremap <silent> <F7> :NERDTreeToggle<CR>
nnoremap <silent> <F8> :BufExplorer<CR>
nnoremap <silent> <F3> :Grep<CR>

" 在右侧显示窗口
let Tlist_Use_Right_Window = 1 
" 压缩方式
let Tlist_Compart_Format = 1 
" 如果只有一个buffer，kill窗口也kill掉buffer
let Tlist_Exist_OnlyWindow = 1 
" 不要关闭其他文件的tags
let Tlist_File_Fold_Auto_Close = 0 
" 不要显示折叠树
let Tlist_Enable_Fold_Column = 0 

"FuzzyFinderTextMate 设置
"map <leader>t :FuzzyFinderTextMate<CR>
let g:Tortoise_Path = 'E:\Progra~1\TortoiseSVN\bin\TortoiseProc.exe'

"自定义快捷键
"so E:\Program Files\vim\vim72\mswin.vim

